package done.easy_201_300;

import lombok.extern.slf4j.Slf4j;
import org.junit.Test;

/**
 * 292. Nim Game Nim游戏
 * <p>
 * 你和你的朋友，两个人一起玩 Nim游戏：桌子上有一堆石头，
 * 每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就
 * 是获胜者。你作为先手。你们是聪明人，每一步都是最优解。
 * 编写一个函数，来判断你是否可以在给定石头数量的情况下赢得
 * 游戏。
 * <p>
 * 示例:
 * 输入: 4
 * 输出: false
 * 解释: 如果堆中有 4 块石头，那么你永远不会赢得比赛；
 * 因为无论你拿走 1 块、2 块 还是 3 块石头，最后一块
 * 石头总是会被你的朋友拿走。
 * 解题：
 * 让我们考虑一些小例子。显而易见的是，如果石头堆中只有一
 * 块、两块、或是三块石头，那么在你的回合，你就可以把全部石子
 * 拿走，从而在游戏中取胜。而如果就像题目描述那样，堆中恰好
 * 有四块石头，你就会失败。因为在这种情况下不管你取走多少石
 * 头，总会为你的对手留下几块，使得他可以在游戏中打败你。因
 * 此，要想获胜，在你的回合中，必须避免石头堆中的石子数为4
 * 的情况
 *
 * @author 大硕
 * 2019-03-30 10:00 PM
 **/
@Slf4j
public class NimGame {

    @SuppressWarnings("all")
    public boolean canWinNim(int n) {
        // 190330 first
        return false;
    }

    @Test
    public void test() {
        log.info("{}", canWinNim(4));
    }
}




























/*
public boolean canWinNim(int n) {
    if (n < 4) {
        return true;
    } else {
        return n % 4 != 0;
    }
}
*/
